#include <iostream>
#include "graphtypes.h"
#include "GraphOrientedWeighted.h"
#include "GraphOrientedMatrix.h"
#include "GraphWeightedMatrix.h"

using namespace std;

class GraphOrientedWeightedMatrix : public virtual GraphOrientedWeighted, public virtual GraphOrientedMatrix, public virtual GraphWeightedMatrix
{
protected :
  weight_t **weight;
public:
  GraphOrientedWeightedMatrix(summit_t, edges_t);
  virtual ~GraphOrientedWeightedMatrix();
  virtual bool areConnected(summit_t, summit_t) const;
  virtual vector<summit_t> * getNeighbours(summit_t v) const;
  virtual void connect(summit_t, summit_t);
  virtual void deconnect(summit_t, summit_t);
  virtual weight_t getWeight(summit_t, summit_t) const;
  virtual void setWeight(summit_t, summit_t, weight_t);
  //virtual void printGraph() const;
};
